﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;

namespace SkeletalViewer
{
    class LectorXML
    {
        public LectorXML(String direccion)
        {
            xDoc.Load(direccion);
        }

        public ControladorImagen obtenerControladorImagen(String nombreImagen){

            XmlNodeList imagenes = xDoc.GetElementsByTagName("imagen");
            XmlNode nombre;
            Imagen imagen;

            for (int i = 0; i < imagenes.Count; i++)
            {
                nombre=imagenes[i].Attributes.GetNamedItem("imagen");
                if (nombre.Value == nombreImagen)
                {
                    XmlAttributeCollection atributos = imagenes[i].Attributes;
                    imagen = new Imagen(@""+atributos[1].Value, Double.Parse(atributos[2].Value), Double.Parse(atributos[3].Value));
                    return new ControladorImagen(imagen);
                }
            }
            return null;           
        }

        public ControladorImagen obtenerControladorImagen(String nombreImagen, double alto, double ancho)
        {

            XmlNodeList imagenes = xDoc.GetElementsByTagName("imagen");
            XmlNode nombre;
            Imagen imagen;

            for (int i = 0; i < imagenes.Count; i++)
            {
                nombre = imagenes[i].Attributes.GetNamedItem("imagen");
                if (nombre.Value == nombreImagen)
                {
                    XmlAttributeCollection atributos = imagenes[i].Attributes;
                    imagen = new Imagen(@"" + atributos[1].Value, alto, ancho);
                    return new ControladorImagen(imagen);
                }
            }
            return null;
        }

        public double obtenerAncho(String nombreImagen)
        {
            XmlNodeList imagenes = xDoc.GetElementsByTagName("imagen");
            XmlNode nombre;
            double ancho=0;

            for (int i = 0; i < imagenes.Count; i++)
            {
                nombre = imagenes[i].Attributes.GetNamedItem("imagen");
                if (nombre.Value == nombreImagen)
                {
                    ancho = double.Parse((imagenes[i].Attributes.GetNamedItem("ancho")).Value);
                }
            }
            return ancho;
        }

        public double obtenerAlto(String nombreImagen)
        {
            XmlNodeList imagenes = xDoc.GetElementsByTagName("imagen");
            XmlNode nombre;
            double alto = 0;

            for (int i = 0; i < imagenes.Count; i++)
            {
                nombre = imagenes[i].Attributes.GetNamedItem("imagen");
                if (nombre.Value == nombreImagen)
                {
                    alto = double.Parse((imagenes[i].Attributes.GetNamedItem("alto")).Value);
                }
            }
            return alto;
        }

        private XmlDocument xDoc = new XmlDocument();
    }
}
